package com.darly.dlndk.module;

import com.darly.dlndk.module.thread.CThreadRunListener;

/**
 * Description TODO: 第一个实现性质的NDK 应用类库
 * Package com.darly.dlndk.module
 * Author fronchdarly
 * Date 2021/2/26 2:15 PM

 */
public class FirstNdkModule {
    private FirstNdkModule() {
    }

    static class FirstNdkModuleHolder {
        static FirstNdkModule controller = new FirstNdkModule();
    }

    public static FirstNdkModule getInstance() {
        return FirstNdkModuleHolder.controller;
    }


    //初始化加载类库
    static {
        System.loadLibrary("c-study");
    }

    public native String stringFromJNI();
    /**
     * java调用C++提供的接口
     * @param config 初始化配置
     */
    public native void init(String config);

    /**
     * java注册C++的回调接口
     * @param listener 注册回调
     */
    public native void registerListener(FirstNdkListener listener);

    /**
     * java调用C++加密
     * @param normalFilePath 正确地址
     * @param encryptFilePath 压缩后的地址
     * @return 成功/失败
     */
    public native boolean fileEncrypt(String normalFilePath, String encryptFilePath);


    /**
     * 在C++中启动线程
     * @param listener
     * @param size
     * @param length
     */
    public native void registerCThread(CThreadRunListener listener,int size,int length);

}
